// JavaScript：时间戳（timestamp）与时间（Date）转换

// 时间转换为时间戳
console.log('new Date()', new Date());
// 通过valueOf()函数返回指定对象的原始值获得准确的时间戳值；
let timestamp1 = (new Date()).valueOf();
console.log(timestamp1);

// 通过原型方法直接获得当前时间的毫秒值，准确；
let timestamp2 = new Date().getTime();
console.log(timestamp2);

// 将时间转化为一个number类型的数值，即时间戳；
var timestamp3 = Number(new Date());
console.log(timestamp3);


// 时间戳转换为时间, 不建议使用, 因为toLocaleDateString不同浏览器返回的值不一样
// #Chrome = 57
// > new Date().toLocaleDateString()
// > output: "2018/9/28"

// #Chrome = 58
// > new Date().toLocaleDateString()
// > output: "2018-9-28"

// #Chrome = 69
// > new Date().toLocaleDateString()
// > output: "9/28/2018"
// https://blog.csdn.net/qq_35246620/article/details/82849331
function TimestampToDate(Timestamp) {
    let date1 = new Date(Timestamp);
    console.log('date1.toLocaleDateString()', date1.toLocaleDateString());
    console.log('date1.toTimeString()', date1.toTimeString());
    return date1.toLocaleDateString().replace(/\//g, "-") + " " + date1.toTimeString().substr(0, 8);
}
console.log(TimestampToDate(timestamp3));

function TimestampToDate2(Timestamp) {
    let now = new Date(Timestamp),
        y = now.getFullYear(),
        m = now.getMonth() + 1,
        d = now.getDate();
    return y + "-" + (m < 10 ? "0" + m : m) + "-" + (d < 10 ? "0" + d : d) + " " + now.toTimeString().substr(0, 8);
}
console.log(TimestampToDate2(timestamp3));